/* 
 * File:   CommandManager.h
 * Author: Muhammad Anis
 *
 * Created on November 1, 2012, 5:09 PM
 */

#ifndef COMMANDMANAGER_H
#define	COMMANDMANAGER_H

#include <vector>
#include <iostream>
#include <string.h>
#include "../Command/Command.h"
#include "../CalendarManager/CalendarManager.h"

using namespace std;

class CommandManager{
private:
    vector<Command> commands;
    CalendarManager cal_manager;
    
public:
    
    CommandManager();
    
    CommandManager(int);
    CommandManager(CommandManager&);
    CommandManager(CalendarManager&);
    ~CommandManager();
    
    /**
     * 
     * @param Id of Calendar
     * @param Name of command
     * @param command's parameter
     */
    void Execute(long,const string&,char**);
    bool IsCommandExist(char*);
    CalendarManager& GetCalendarManager();
    /**
     * Add command to collection
     * @param Command
     */
    void AddCommand(const Command&);
    
};


#endif	/* COMMANDMANAGER_H */

